// CompressedState.cs
//
//XMPP .NET Library Copyright (C) 2008 Dieter Lunn
//
//This library is free software; you can redistribute it and/or modify it under
//the terms of the GNU Lesser General Public License as published by the Free
//Software Foundation; either version 3 of the License, or (at your option)
//any later version.
//
//This library is distributed in the hope that it will be useful, but WITHOUT
//ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
//FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
//
//You should have received a copy of the GNU Lesser General Public License along
//with this library; if not, write to the Free Software Foundation, Inc., 59
//Temple Place, Suite 330, Boston, MA 02111-1307 USA

using xmpp.common;
using xmpp.logging;

namespace xmpp.states
{
	public class CompressedState : State
	{	
		public CompressedState()
		{
		}
		
		public override void Execute (Tag data)
		{
			if (data is xmpp.core.compression.Compressed)
			{
				Logger.Debug(this, "Starting compression of the socket");
				_current.Socket.StartCompression(_current.Algorithm);
				_current.Compress = true;
				_current.State = new ConnectedState();
				_current.Execute(null);
			}
		}
	}
}